package com.jq.jqaicode.common.file;

import com.jq.jqaicode.common.AppConstant;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.TakesScreenshot;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;

/**
 * web截图类
 */
public class WebScreenshot {

    public static void genHtmlScreenshot(String webUrl,String buildUniqueDir)throws Exception{
        // 1. 自动下载并管理 chromedriver
        WebDriverManager.chromedriver().setup();
        // 2. 配置 Chrome 为 headless 模式
        ChromeOptions options = new ChromeOptions();
        // 【C】常见的辅助启动参数
        // headless 模式，新版 Chrome 推荐用：--headless=new
        options.addArguments("--headless=new");
        // 通用建议参数
        options.addArguments(
                "--disable-gpu",
                "--disable-dev-shm-usage",
                "--no-sandbox",
                "--window-size=1280,800"
        );
        WebDriver driver = new ChromeDriver(options);
        try {
            // 4. 构造跨平台 file:// URI
            driver.get(webUrl);

            // 5. 等待渲染完成（如有异步内容，建议用 WebDriverWait）
            Thread.sleep(2000);

            // 6. 截屏并写入文件
            File tmp = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            Path target = Path.of(buildUniqueDir,
                    "homepage_screenshot.png"
            );
            Files.createDirectories(target.getParent());
            Files.copy(tmp.toPath(), target);

            //System.out.println("截图已保存: " + target.toAbsolutePath());
        }finally {
            driver.quit();
        }
    }
}
